Method and Apparatus to Optimize Multi-Destination Traffic Over Etherchannel in Stackwise Virtual Topology

ABSTRACT

Methods and systems are disclosed. The method comprises: designating a first plurality of links from a first stack segment to a second stack segment as a first etherchannel link; designating a second plurality of links from the first stack segment to a third stack segment as a second etherchannel link, where the second stack segment and the third stack segment are in communication with a fourth stack segment; designating the first etherchannel link and the second etherchannel link as members of a hierarchical etherchannel link; and sending a packet from the first stack segment to the fourth stack segment using the hierarchical etherchannel link.

RELATED APPLICATIONS

This application is a division of co-pending U.S. patent applicationSer. No. 16/833,770, filed on Mar. 30, 2020, which is a division of U.S.patent application Ser. No. 15/636,933 filed on Jun. 29, 2017, now U.S.Pat. No. 10,608,957, the disclosure of each is incorporated herein byreference in its entirety.

TECHNICAL FIELD

This disclosure relates in general to optimization of traffic flow overetherchannel in multiple topologies.

BACKGROUND

Switches comprise backside ports and frontside ports. Backside ports areused to, for example, connect one switch to another switch to form aswitch stack, or a stacked switch. Backside ports typically have amaximum link distance of five meters or less, but communicate at a veryhigh speed. Frontside ports are ports used to typically attach devicesto the switch. The advantage of frontside Ethernet ports is that theycan connect devices over long distances, but at a speed slower than theconnection speeds of backside ports.

In the past, switches that were spaced far apart could be connectedtogether in a ring using two of the frontside ports. As only twofrontside ports were available for frontside stacking, ring topologieshave been the only topologies available, making mesh and otherinteresting configurations impossible. In addition, prior switches couldnot support hierarchical etherchannel communications, such as that whichmay be implemented in “ring of rings” topologies. Furthermore, inhierarchical topologies that implement multiple levels of stacks betweenaccess nodes and a core node, there have not been methods to efficientlyload balance the traffic or avoid traffic flowing over unnecessarylinks. In addition, prior systems failed to perform déjà vu checks basedon global port numbers and intermediate port numbers.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the disclosure can be better understood with referenceto the following drawings. The components in the drawings are notnecessarily to scale, emphasis instead being placed upon clearlyillustrating the principles of the present disclosure. Moreover, in thedrawings, like reference numerals designate corresponding partsthroughout the several views.

FIG. 1 illustrates an exemplary switch topology of a “ring of rings”type that uses hierarchical etherchannel consistent with embodiments ofthe present disclosure.

FIG. 2 is a flow chart illustrating packet routing in a topology thatuses hierarchical etherchannel, for example, a “ring of rings” topology”consistent with embodiments of the present disclosure.

FIG. 3 is a hierarchical network that efficiently load balances trafficfrom access to core and avoids unnecessary use of links at anaggregation layer consistent with embodiments of the present disclosure.

FIG. 4 is a hierarchical network that efficiently load balances trafficfrom core to access and avoids unnecessary use of links at anaggregation layer consistent with embodiments of the present disclosure.

FIG. 5 a and FIG. 5 b are flowcharts showing traffic handling in ahierarchical network consistent with embodiments of the presentdisclosure.

FIG. 6 illustrates a network of stack segments connected with frontsidestacking consistent with embodiments of the present disclosure.

FIG. 7 illustrates a flow chart of traffic flow across the networkillustrated in FIG. 6 consistent with embodiments of the presentdisclosure.

FIG. 8 illustrates a second network of stack segments connected withfrontside stacking consistent with embodiments of the presentdisclosure.

DESCRIPTION OF EXAMPLE EMBODIMENTS

Overview

Methods and systems are disclosed. The method includes: designating afirst plurality of links from a first stack segment to a second stacksegment as a first etherchannel link; designating a second plurality oflinks from the first stack segment to a third stack segment as a secondetherchannel link, where the second stack segment and the third stacksegment are in communication with a fourth stack segment; designatingthe first etherchannel link and the second etherchannel link as membersof a hierarchical etherchannel link; and sending a packet from the firststack segment to the fourth stack segment using the hierarchicaletherchannel link.

Additional embodiments include a method of transmitting a packet via aplurality of stack segments, including: receiving a native Ethernetpacket; appending a source global port number to a header on the packet;transmitting the packet and the header from a first stack segment to asecond stack segment; and performing a déjà vu on the source global portnumber at the second stack segment.

Also disclosed is a method of communicating between an access node and acore node via an aggregation node, including: hashing a packet at theaccess node to select a link within an etherchannel upon which totransmit the packet to the aggregation node; and hashing a packet at theaggregation node to select a link within a second etherchannel uponwhich to transmit the packet to the core node.

EXAMPLE EMBODIMENTS

In a “ring of rings,” or “stack of stack” topology such as that shown inFIG. 1 , traffic flows destined from a first stack segment (which initself has a full ring backstack) to a second stack segment separated byone or more additional stack segments needs to be distributed to twoStackwise Virtual Links (one on each side of the first stack segment).Each Stackwise Virtual Link is treated as a stack port etherchannelgroup and as long as the etherchannel is alive, packets continue to flowin the respective directions.

But in the case of a Stackwise Virtual Link being down completely, thereis a need to redistribute its traffic to the other segment. This trafficconvergence, where the system is redirecting the forwarding planetraffic can be solved by using Hierarchical Etherchannels (HEC).

In HEC, Stackwise Virtual Links from the first stack segment to a firstintermediate stack segment are part of etherchannel 1. SimilarlyStackwise Virtual Links from the first stack segment to a secondintermediate stack segment are part of etherchannel 2. Etherchannel 1and etherchannel 2 are members of a hierarchical etherchannel group,thus vastly improving traffic convergence by doing convergence in theforwarding ASIC.

For the first phase of implementation the traffic redirection may bemanaged by software tables as currently there may not be support forHierarchical Etherchannel tables in prior hardware. Should etherchannel2 be broken, the software will walk through the forwarding tables andmodify required forwarding entries where the software will removeetherchannel 2 as a destination and add etherchannel 1 as thealternative destination. With hardware/ASIC support to handleHierarchical Etherchannel (“EC”) tables, where both EC destinationindices can be added as part of a Hierarchical EC table, on a completeEC bundle going down, hierarchical load balancing will kick in andtraffic will be redirected to the other alternate etherchannel. Softwareforwarding entries will continue to point to the HEC Table forwardingentry.

By making etherchannel ports members of a Hierarchical Etherchannelgroup, the ability to converge data traffic in a stack of stackstopology is significantly improved.

Additional features of the present disclosure include the ability toload balance traffic that flows between a core, an aggregation layer,and an access. When traffic flows from access to core via an aggregationlayer, the traffic from access will hash and arrive via any EC memberconnected to the aggregation. From the aggregation to the core, trafficcan again hash out from any EC member connected to the core.

When traffic flows from the core to the aggregation layer to access,traffic from the core will hash and arrive via any EC member connectedto the aggregation. From the aggregation to the access, traffic canagain hash out from any EC member connected to the access.

Stackwise Virtual enables one or more front panel ports to be combinedand designated as a stack port, as indicated in the topology shown inFIG. 3 . These links are called Stackwise Virtual Links (SVL). In caseswhere EC hashing decisions are made at egress, as is the case with UADPASIC, a copy of the traffic that has to hash out to a core or accessetherchannel member will be sent across the SVL for the EC hash to beapplied. Of these two copies, one will be dropped and the other will besent. This is not exactly desirable when there is an EC member link onthe local switch connected to the core or access. It takes upunnecessary bandwidth, and will sooner rather than later end upoversubscribing the SVL.

Users can choose if they want their traffic to go over a set of locallinks or work in a regular etherchannel mode. Traffic will be sent overSVL if all local EC members go down. We go through each flows below tohighlight the differences.

For unicast traffic, the hash programming for the EC member is done tomake sure a local link is available on egress. The egress destinationprogramming will make sure that no packets are sent across the SVL. Thisis comparable to current frontside stacking implementations.

For multicast and broadcast traffic, the EC is added to the multicastgroup, and the hash programming is done to make sure a local link isavailable on egress. However, it is possible that a particular multicastgroup has non-EC receivers on the remote switch. In this case, thesystem allows a copy of the packet to go to other end but then make useof hardware pruning to weed out the EC member ports (using a frontsidestack drop table). Hardware pruning allows the achievement of localforwarding behavior without having to duplicate egress forwardingresources. This is an important differentiation of this solution overthe previous ones—it is much improved, and can now span across networkdomains (access and aggregation).

Control frames from any Stackwise Virtual member over a remote EC portwill not be impacted by the above mechanism since there is a bit in theSVL header to allow override of drop decisions.

The solution proposed above has a faster re-convergence time, and doesnot require significant processor and memory resources to recalculateand reprogram in the case of a link failure. In addition, this solutioncan be used for any other protocol or technology requirement mandatingredundant links with or without the use of hashing mechanisms, and isthereby extensible as well.

FIG. 1 illustrates an exemplary switch topology of a “ring of rings”type that uses hierarchical etherchannel consistent with embodiments ofthe present disclosure. Each of the four nodes illustrated is a stacksegment; the stack segment is a ring of routers. Through the use offrontside stacking the size and number of stacks may be extended beyondthe original stack segment through the use of various topologies such asthe illustrated “ring of rings” or “stack of stacks.” In this topology,traffic flows on the backside stack within a given stack segment andacross the frontside stack for traffic flowing between and among stacksegments.

Traffic flowing from Stack Segment 4 140 to Stack Segment 2 120 may flowover hierarchical etherchannel 1 170 that includes etherchannel 1 150and etherchannel 2 160. So long as both etherchannel 1 150 andetherchannel 2 160 are up and running, a hash is performed on datapackets in order to select whether the packet will flow via etherchannel1 150 or etherchannel 2 160. Thus, hashing can be used as one method ofload balancing the system. Once an etherchannel (1 or 2) is selected,the particular link within that etherchannel is also selected based onload balancing that etherchannel link, typically via use of a hash.

Should one of the etherchannels go down, then the address for thatetherchannel is masked off and traffic redirected to the healthyetherchannel. Should one of the links within an etherchannel go down,that link is masked and traffic will flow down that etherchannel on thelinks that are still healthy.

FIG. 2 is a flow chart illustrating packet routing in a topology thatuses hierarchical etherchannel, for example, a “ring of rings” topology”consistent with embodiments of the present disclosure. Flow begins atStart (stage 210) where a packet needs to traverse from a first stacksegment to a second stack segment that is at least one segment away.Thus, each packet could flow in one of two directions, where eachdirection is an etherchannel, and each etherchannel comprises multiplelinks.

A check is made to see if one of the etherchannels is down (stage 220).If so, then a mask is applied to block out the down etherchannel thehealthy etherchannel is selected (stage 240). If no etherchannels aredown, an etherchannel that is part of the hierarchical etherchannel isselected for load balancing purposes, typically through the use of ahashing algorithm (stage 230).

Next, a test is made on the selected etherchannel to see if any linksare down (stage 250). If so, that link or links is masked off and a linkthat is active is selected to carry the traffic (stage 270). If not, alink is selected based on load balancing, typically through the use of ahashing algorithm.

So, in summary, typically two hashing are performed: a first to selectan etherchannel from among the etherchannels that form the hierarchicaletherchannel, and a second to select a link within the selectedetherchannel to carry the traffic.

FIG. 3 is a hierarchical network that efficiently load balances trafficfrom access to core and avoids unnecessary use of links at anaggregation layer consistent with embodiments of the present disclosure.This figure is used to illustrate traffic that flows from the access tothe core via an aggregation layer. The aggregation layer isinterconnected via Stackwise Virtual Link. Each access node, for exampleaccess node 330 a, is interconnected via etherchannel to each of thenodes 320 a and 320 b in the aggregation layer. Each node in theaggregation layer, 320 a and 320 b, is connected to the core viaetherchannel. Links within a given etherchannel are denoted by theellipse that encompasses the links.

When traffic flows from an access node, such as access node 330 a, tothe core 310 via the aggregation layer 320, the traffic is initiallyhashed to select a link within the etherchannel to send the packetthrough. For example, the hash result of a packet send from access node330 a may result in the packet traveling up the left-most link toaggregation node 320 a. From aggregation node 320 a to core 310, anotherhash is performed to select one of the two links in the interconnectingetherchannel upon which to send the packet.

FIG. 4 is a hierarchical network that efficiently load balances trafficfrom core to access and avoids unnecessary use of links at anaggregation layer consistent with embodiments of the present disclosure.This figure is used to illustrate traffic that flows from the core tothe access via an aggregation layer. The aggregation layer isinterconnected via Stackwise Virtual Link. Each access node, for exampleaccess node 330 a, is interconnected via etherchannel to each of thenodes 320 a and 320 b in the aggregation layer via an etherchannel linkcomprising at least two links. Each node in the aggregation layer, 320 aand 320 b, is connected to the core via etherchannel. Links within agiven etherchannel are denoted by the ellipse that encompasses thelinks.

When traffic flows from the core 310 to an access node via theaggregation layer 320, the traffic is initially hashed to select a linkwithin the etherchannel to send the packet through. For example, thehash result of a packet sent from core 310 may result in the packettraveling up the left-most link to aggregation node 320 a. Fromaggregation node 320 a to access node 330 a, another hash is performedto select one of the two links in the interconnecting etherchannel uponwhich to send the packet.

FIG. 5 a and FIG. 5 b are flowcharts showing traffic handling in ahierarchical network consistent with embodiments of the presentdisclosure. FIG. 5 a is a flowchart showing traffic flow from access tocore; while FIG. 5 b is a flowchart showing traffic flow from core toaccess. Beginning with FIG. 5 a , traffic from access is load balanced,typically via a hashing algorithm and arrives at an etherchannel memberconnected to the aggregation layer (stage 510). From the aggregationlayer to the core, traffic is again load balanced, or hashed, from anyetherchannel member connected to the cored. Turning to FIG. 5 b ,traffic from the core is load balanced, or hashed, and arrives at anetherchannel member connected to the aggregation layer (stage 530). Fromthe aggregation layer to the access layer, traffic is again loadbalanced, or hashed, from an etherchannel member connected to access(stage 540).

FIG. 6 illustrates a network of stack segments connected with frontsidestacking consistent with embodiments of the present disclosure. In FIG.6 , stack segment 1 610 is connected to stack segment 2 620 viafrontside stacking. Stack segment 2 620 is connected to stack segment 3630 via frontside stacking. Packets arrive over native Ethernet at asource global port number at stack segment 1 and leave stack segment 3over native Ethernet at a destination global port number (“GPN”). When apacket arrives at the source global port number, the source GPN isappended to the frame descriptor associated with the packet. The sourceGPN, as well as the destination GPN, remain with the packet as its flowsthrough the stack of stacks.

In addition, intermediate source GPN and intermediate destination GPNare affixed to the frame descriptor as the packet travels in and out ofthe various stack segments. Intermediate déjà vu checks are performedusing the intermediate source GPN and intermediate destination GPN tomake sure that a packet is not being sent out of a port upon which itentered. The source GPN and destination GPN are used at the destinationGPN on stack segment 3 630 for a déjà vu check to ensure the packet isnot leaving on the same port from which it entered.

FIG. 7 illustrates a flow chart of traffic flow across the networkillustrated in FIG. 6 consistent with embodiments of the presentdisclosure. Initially, a native Ethernet packet arrives at the sourceGPN (stage 710). A source GPN and destination GPN are affixed to theframe descriptor that is associated with that packet (stage 720). As thepacket travels through the stack of stacks, intermediate source globalport numbers and intermediate destination global port numbers are addedto the frame descriptor (stage 730). Intermediate déjà vu checks areperformed at each stack segment (stage 740). The source GPN is carriedwith the Ethernet packet in the frame descriptor through to the laststack segment (stage 750). Lastly, a déjà vu check is performed at thelast stack segment using the source GPN and the destination GPN (stage760).

FIG. 8 illustrates a second network of stack segments connected withfrontside stacking consistent with embodiments of the presentdisclosure. In FIG. 8 , a plurality of computers 840 and 850 arecommunicating via a stack of stacks comprising stack segment 1 820 andstack segment 2 830 with the cloud 810. A frontside stack P4 is incommunication between stack segment 1 820 and stack segment 2 830.According to the principles of the present disclosure, whencommunication is made from the cloud to computer 840 via Stack Segment 1820, communication occurs over link P1, instead of over the longer pathvia P4 and P2. In this way, intelligent routing is performed that avoidunnecessary hops and traffic.

Any process, descriptions or blocks in flow charts or flow diagramsshould be understood as representing modules, segments, or portions ofcode which include one or more executable instructions for implementingspecific logical functions or steps in the process, and alternateimplementations are included within the scope of the present disclosurein which functions may be executed out of order from that shown ordiscussed, including substantially concurrently or in reverse order,depending on the functionality involved. In some embodiments, steps ofprocesses identified in FIGS. 2, 4, and 7 using separate boxes can becombined. Further, the various steps in the flow diagrams illustrated inconjunction with the present disclosure are not limited to thearchitectures described above in association with the description forthe flow diagram (as implemented in or by a particular module or logic)nor are the steps limited to the example embodiments described in thespecification and associated with the figures of the present disclosure.In some embodiments, one or more steps may be added to the methodsdescribed in FIGS. 2, 4, and 7 either in the beginning, end, and/or asintervening steps, and that in some embodiments, fewer steps may beimplemented.

It should be emphasized that the above-described embodiments of thepresent disclosure are merely possible examples of implementations,merely set forth for a clear understanding of the principles of theswitching systems and methods. Many variations and modifications may bemade to the above-described embodiment(s) without departingsubstantially from the spirit and principles of the disclosure. Althoughall such modifications and variations are intended to be included hereinwithin the scope of this disclosure and protected by the followingclaims, the following claims are not necessarily limited to theparticular embodiments set out in the description.

We claim:
 1. A method of communicating between an access node and a corenode via an aggregation node, comprising: hashing a packet at the accessnode to select a link within an etherchannel upon which to transmit thepacket to the aggregation node; and hashing a packet at the aggregationnode to select a link within a second etherchannel upon which totransmit the packet to the core node.
 2. The method of claim 1, furthercomprising: hashing a second packet at the core node to select a linkwithin an etherchannel upon which to transmit the second packet to theaggregation node; and hashing the second packet at the aggregation nodeto select a link within a second etherchannel upon which to transmit thesecond packet to the access node.
 3. The method of claim 2, furthercomprising providing a frontside stack link between the aggregation nodeand a second aggregation node.
 4. The method of claim 3, furthercomprising not using the frontside stack link to communicate between theaggregation node and the access node when a direct link exists from theaggregation node to the access node.
 5. A system for communicatingbetween an access node and a core node via an aggregation node, thesystem comprising: a memory storage; and a processing unit coupled tothe memory storage, wherein the processing unit is operative to: hash apacket at the access node to select a link within an etherchannel uponwhich to transmit the packet to the aggregation node; and hash a packetat the aggregation node to select a link within a second etherchannelupon which to transmit the packet to the core node.
 6. The system ofclaim 5, wherein the processing unit is further operative to: hash asecond packet at the core node to select a link within an etherchannelupon which to transmit the second packet to the aggregation node; andhash the second packet at the aggregation node to select a link within asecond etherchannel upon which to transmit the second packet to theaccess node.
 7. The system of claim 6, wherein the processing unit isfurther operative to provide a frontside stack link between theaggregation node and a second aggregation node.
 8. The system of claim7, wherein the processing unit is further operative to not use thefrontside stack link to communicate between the aggregation node and theaccess node when a direct link exists from the aggregation node to theaccess node.
 9. A computer-readable medium that stores a set ofinstructions which when executed perform a method for communicatingbetween an access node and a core node via an aggregation node, themethod executed by the set of instructions comprising: hashing a packetat the access node to select a link within an etherchannel upon which totransmit the packet to the aggregation node; and hashing a packet at theaggregation node to select a link within a second etherchannel uponwhich to transmit the packet to the core node.
 10. The computer-readablemedium of claim 9, further comprising: hashing a second packet at thecore node to select a link within an etherchannel upon which to transmitthe second packet to the aggregation node; and hashing the second packetat the aggregation node to select a link within a second etherchannelupon which to transmit the second packet to the access node.
 11. Thecomputer-readable medium of claim 10, further comprising providing afrontside stack link between the aggregation node and a secondaggregation node.
 12. The computer-readable medium of claim 11, furthercomprising not using the frontside stack link to communicate between theaggregation node and the access node when a direct link exists from theaggregation node to the access node.